/*!
 * MindPlus
 * firebeetleesp32e
 *
 */
#include <U8g2lib.h>
#include <MPython.h>
#include <DFRobot_Task.h>
#include <DFRobot_NeoPixel.h>
// 动态变量
volatile float mind_n_ch;
volatile float mind_n_en;

// 函数声明
void oled12864Begin(uint8_t addr, uint8_t dir);
void oled12864Print(String text, uint8_t x, uint8_t y);
// 创建对象
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2_12864(U8G2_R0, U8X8_PIN_NONE);

// Static functions
void oled12864Begin(uint8_t addr, uint8_t dir) {
 u8g2_12864.setI2CAddress(addr<<1);
 u8g2_12864.begin();
 u8g2_12864.enableUTF8Print();
 u8g2_12864.setFont(u8g2_font_wqy16_t_gb2312);
 u8g2_12864.setFontDirection(dir);
 u8g2_12864.firstPage();
}
void oled12864Print(String text, uint8_t x, uint8_t y) {
 u8g2_12864.setCursor(x, y);
 u8g2_12864.print(text);
 u8g2_12864.nextPage();
}
newTask(loop1)
// 创建对象
DFRobot_NeoPixel neoPixel_33;


// 主程序开始
void setup() {
	taskStart();
	mPython.begin();
	oled12864Begin(0x3c, 0);
  neoPixel_33.begin(33, 1);
  neoPixel_33.setBrightness(20);
  neoPixel_33.setRangeColor(0, 0, 0xFFFFFF);

	mind_n_ch = 0; // 左右按键
	mind_n_en = 1; // 确认按键
	taskFree();
}
void loop() {
	if ((digitalRead(19) == 0) && (mind_n_ch > 0)) {
   delay(10);
   if ((digitalRead(19) == 0) && (mind_n_ch > 0)) {
       mind_n_ch -= 1;
   }
   while (digitalRead(19) == 0) {
       delay(10);
       buzz.redirect(23);
	      buzz.freq(147, BEAT_1_4);
   }
   u8g2_12864.clear();
 }

 if ((digitalRead(18) == 0) && (mind_n_ch < 7)) {
   delay(10);
   if ((digitalRead(18) == 0) && (mind_n_ch < 7)) {
       mind_n_ch += 1;
   }
   while (digitalRead(18) == 0) {
       delay(10);
       buzz.redirect(23);
	      buzz.freq(147, BEAT_1_4);
   }
   u8g2_12864.clear();
 }

 if ((digitalRead(5) == 0)) {
   delay(10);
   if ((digitalRead(5) == 0)) {
       mind_n_en = !mind_n_en;
   }
   while (digitalRead(5) == 0) {
       delay(10);
       buzz.redirect(23);
	      buzz.freq(147, BEAT_1_4);
   }
 }

 while (mind_n_en == 0) {
   delay(10);
   if ((mind_n_en==0)) {
     if ((mind_n_ch==0)) {
       taskStart(loop1);
     }
     if ((mind_n_ch==1)) {
       taskStart(loop2);
     }
     if ((mind_n_ch==2)) {
       taskStart(loop3);
     }
     if ((mind_n_ch==3)) {
       taskStart(loop4);
     }
     if ((mind_n_ch==4)) {
       taskStart(loop5);
     }
     if ((mind_n_ch==5)) {
       taskStart(loop6);
     }
     if ((mind_n_ch==6)) {
       taskStart(loop7);
     }
     if ((mind_n_ch==7)) {
       taskStart(loop8);
     }
   }
   if ((digitalRead(5) == 0)) {
       delay(10);
       if ((digitalRead(5) == 0)){
         mind_n_en = !mind_n_en;
       }
       while (digitalRead(5) == 0) {
         delay(10);
         buzz.redirect(23);
	      buzz.freq(147, BEAT_1_4);
       }
   }
 }

 if ((mind_n_ch==0)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务一", 40, 56);
 }

 if ((mind_n_ch==1)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务二", 40, 56);
 }

 if ((mind_n_ch==2)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务三", 40, 56);
 }

 if ((mind_n_ch==3)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务四", 40, 56);
 }
 
 if ((mind_n_ch==4)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务五", 40, 56);
 }
 
  if ((mind_n_ch==5)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务六", 40, 56);
 }
 
  if ((mind_n_ch==6)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务七", 40, 56);
 }
 
  if ((mind_n_ch==7)) {
   oled12864Print("积木主控", 32, 32);
   oled12864Print("任务八", 40, 56);
 }

 if ((mind_n_en==1)) {
   if ((mind_n_ch==0)) {
     taskFree(loop1);
   }
   if ((mind_n_ch==1)) {
     taskFree(loop2);
   }
   if ((mind_n_ch==2)) {
     taskFree(loop3);
   }
   if ((mind_n_ch==3)) {
     taskFree(loop4);
   }
   if ((mind_n_ch==4)) {
     taskFree(loop5);
   }
   if ((mind_n_ch==5)) {
     taskFree(loop6);
   }
   if ((mind_n_ch==6)) {
     taskFree(loop7);
   }
   if ((mind_n_ch==7)) {
     taskFree(loop8);
   }
 }
}


